package com.other.src.main.java.com.kuang.volatileDemo;

import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;

public class a {
    private static AtomicInteger num = new AtomicInteger();

    //原子类为啥这么高级 比锁高效多倍
    //这些类的操作都直接和操作系统挂钩，直接在内存中修改值！UnSafe类是一个很特殊的存在
    public static void main(String[] args) {
        for (int i = 0; i < 20; i++) {
            new Thread(()->{
                for (int j = 0; j < 1000; j++) {
                    add();
                }
            }).start();}



        while (Thread.activeCount() > 2 ){
            //main gc
            Thread.yield();
        }
        System.out.println(Thread.currentThread().getName()+" "+num);
    }

    public static void  add() {
//        num++;
        num.getAndIncrement(); // +1方法
    }
}
